package com.ydl.shopping.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.ydl.shopping.core.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 登录访问记录表
 *
 * @author 林武泰
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("tb_login_info")
@Schema(name = "登录访问记录表")
public class TbLoginInfo extends BaseEntity {
    /** 登录用户名 */
    @TableField("username")
    @Schema(description = "登录用户名")
    private String username;

    /** IP地址 */
    @TableField("ip")
    @Schema(description = "IP地址")
    private String ip;

    /** 登录地点 */
    @TableField("login_location")
    @Schema(description = "登录地点")
    private String loginLocation;

    /** 登录浏览器 */
    @TableField("browser_name")
    @Schema(description = "登录浏览器")
    private String browserName;

    /** 浏览器类型 */
    @TableField("browser_type")
    @Schema(description = "浏览器类型")
    private String browserType;

    /** 浏览器版本 */
    @TableField("browser_version")
    @Schema(description = "浏览器版本")
    private String browserVersion;

    /** 操作系统 */
    @TableField("os")
    @Schema(description = "操作系统")
    private String os;

    /** 登录状态 0：失败，1：成功 */
    @TableField("status")
    @Schema(description = "登录状态")
    private Integer status;

    /** 提示信息 */
    @TableField("msg")
    @Schema(description = "提示信息")
    private String msg;

    /** 访问时间 */
    @TableField("login_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(description = "访问时间")
    private Date loginTime;
}
